
package org.darcy.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.darcy.entity.business.BusinessContract;
import org.darcy.entity.check.ContractRequirement;
import org.darcy.entity.check.ExtInfo;
import org.darcy.entity.work.WorkFlowObject;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

@Schema(description="CheckDelivery: 派工单")
@TableName(value = "check_delivery")
@Getter
@Setter
public class CheckDelivery extends WorkFlowObject implements Serializable {

	private static final long serialVersionUID = 1L;

	@Schema(description = "表单编号")
	@TableField(value = "`form_no`")
	private String formNo;

	@Schema(description = "业务名称")
	@TableField(value = "`item_name`")
	private String itemName;
	
	@Schema(description = "业务金额，来自合同")
	@TableField(value = "`item_capital`")
	private Float itemCapital;
	
	@Schema(description = "专家费")
	@TableField(value = "`specialist_fee`")
	private Float specialistFee;
	
	@Schema(description = "外包费")
	@TableField(value = "`outsource_fee`")
	private Float outsourceFee;

	@Schema(description = "")
	@TableField(value = "`begin_date`")
	private Date beginDate;

	@Schema(description = "")
	@TableField(value = "`end_date`")
	private Date endDate;

	@Schema(description = "服务方式")
	@TableField(value = "`service_type`")
	private String serviceType;

	@Schema(description = "服务频次")
	@TableField(value = "`service_frequency`")
	private Integer serviceFrequency;

	@Schema(description = "收入确认明细表")
	@TableField(value = "`confirm_file`")
	private String confirmFile;

	@Schema(description = "合同id")
	@TableField(value = "`contract_id`")
	private Integer contractId;

	@Schema(description = "采样计划id")
	@TableField(value = "`plan_id`")
	private Integer planId;

	@Schema(description = "委托依据id")
	@TableField(value = "`reason_id`")
	private Integer reasonId;

	@Schema(description = "合同特殊要求，多个")
	@TableField(value = "`contract_requirement`")
	private String contractRequirement;

	@Schema(description = "拓展信息，多个")
	@TableField(value = "`ext_info`")
	private String extInfo;
	
	@Schema(description="相关资料是否已上传政务网")
	@TableField(value = "`is_upload`")
	private Integer isUpload;

	@Schema(description = "派工金额")
	@TableField(value = "`delivery_amount`")
	private Float deliveryAmount;

	@Schema(description = "接收人员")
	@TableField(value = "`accept_dept`")
	private Integer acceptDept;
	
	//@Schema(description = "综合办公室")
	//@TableField(value = "`general_dept`")
	//private Integer generalDept;
	
	@Schema(description = "采样接收部门，场调页面传来")
	@TableField(value = "`survey_accept`")
	private Integer surveyAccept;	

	@Schema(description = "项目负责人")
	@TableField(value = "`project_manager`")
	private Integer projectManager;

	@Schema(description = "备注")
	@TableField(value = "`remark`")
	private String remark;

	@Schema(description = "归档编号")
	@TableField(value = "`archive_no`")
	private String archiveNo;

	@Schema(description = "归档附件")
	@TableField(value = "`archive_file`")
	private String archiveFile;

	@Schema(description = "归档备注")
	@TableField(value = "`archive_remark`")
	private String archiveRemark;

	@Schema(description = "编制编号")
	@TableField(value = "`report_no`")
	private String reportNo;
	
	@Schema(description = "编制时间")
	@TableField(value = "`report_time`")
	private Date reportTime;

	@Schema(description = "编制附件，即报告")
	@TableField(value = "`report_file`")
	private String reportFile;

	@Schema(description = "编制备注")
	@TableField(value = "`report_remark`")
	private String reportRemark;

	@Schema(description = "公示编号")
	@TableField(value = "`publish_no`")
	private String publishNo;

	@Schema(description = "公示时间")
	@TableField(value = "`publish_time`")
	private Date publishTime;

	@Schema(description = "公示截图")
	@TableField(value = "`publish_pic`")
	private String publishPic;

	@Schema(description = "公示完成时间")
	@TableField(value = "`publish_finish_time`")
	private Date publishFinishTime;

	@Schema(description = "公示备注")
	@TableField(value = "`publish_remark`")
	private String publishRemark;

	@Schema(description = "创建时间")
	@TableField(value = "`create_time`")
	private Date createTime;

	@Schema(description = "更新时间")
	@TableField(value = "`update_time`")
	private Date updateTime;

	@Schema(description = "删除标识0：删除；1：存在")
	@TableField(value = "`del_flag`")
	private Integer delFlag;

	// 扩展属性
	@Schema(description = "合同信息")
	@TableField(exist = false)
	private BusinessContract contract;

	@Schema(description = "合同特殊要求列表")
	@TableField(exist = false)
	private List<ContractRequirement> contractRequirementList;

	@Schema(description = "拓展信息列表")
	@TableField(exist = false)
	private List<ExtInfo> extInfoList;

	@Schema(description = "项目负责人")
	@TableField(exist = false)
	private String projectManagerName;
	
	//@Schema(description = "采样列表")
	@TableField(exist = false)
	private List<CheckCollect> collectList;

	//@Schema(description = "当前采样信息")
	@TableField(exist = false)
	private CheckCollect collect;
	
	
	//附件处理
	
	@Schema(description = "收入确认明细表")
	@TableField(exist = false)
	private List<String> confirmFileList;
	
	@Schema(description = "编制附件，即报告")
	@TableField(exist = false)
	private List<String> reportFileList;
	
	@Schema(description = "公示截图")
	@TableField(exist = false)
	private List<String> publishPicList;
	
	@Schema(description = "归档附件")
	@TableField(exist = false)
	private List<String> archiveFileList;
	
	@Schema(description = "合同开始时间")
	@TableField(exist = false)
	private Date contractBegin;
	
	@Schema(description = "业务金额")
	@TableField(exist = false)
	private float businessTotal;
	
	@Schema(description = "合同总金额")
	@TableField(exist = false)
	private float contractTotal;

}
